Presence and geographic location notification based on a setting

ABSTRACT

A user of an instant messaging system may store names of other users of the instant messaging system on a participant list (which may be referred to as a “buddy list”), and the names may be categorized into one or more groups. Similarly, a user of a mobile device, such as a mobile telephone, may store contact information about people on the mobile device. Information describing the on-line presence of the user within the instant messaging system or the geographic location of a mobile device, such as a mobile telephone associated with the user, may be disseminated to users on the participant list or to people on the contact list based on notification information that is associated with groups of users or contacts.

CROSS REFERENCE TO RELATED APPLICATIONS

The present application is a continuation of U.S. patent applicationSer. No. 11/747,730, entitled “Presence and Geographic LocationNotification Based on a Setting” filed on May 11, 2007, which is acontinuation of U.S. patent application Ser. No. 10/849,528, entitled“Presence and Geographic Location Notification Based on a Setting” filedMay 20, 2004 now issued as U.S. Pat. No. 7,219,303, which claimspriority to U.S. provisional application No. 60/471,743, filed on May20, 2003. Each of the aforementioned patent(s) and application(s) arehereby incorporated by reference in their entirety.

TECHNICAL FIELD

This description relates to controlling distribution of notifications ofpresence and geographic location of users of systems such as instantmessaging and cellular telephone systems.

BACKGROUND

On-line services may provide users with the ability to send and receiveinstant messages. Instant messages are private on-line conversationsbetween two or more people who have access to an instant messagingservice, who have installed communications software necessary to accessand use the instant messaging service, and who generally have access toinformation reflecting the on-line status of other users.

SUMMARY

In one general aspect, to determine whether to provide notificationinformation that corresponds to a communication identity, notificationsetting information that identifies a temporal condition is accessed.The notification setting information includes at least one temporalperiod during which notification information is to be provided orwithheld, and includes a beginning and an end of the at least onetemporal period that are specified in the notification settinginformation in advance of the beginning of the temporal period. Adetermination is made as to whether the temporal condition is satisfied,and dissemination of notification information related to thecommunications identity is controlled based on whether the temporalcondition is satisfied.

Implementations may include one or more of the following features. Forexample, notification information may indicate whether thecommunications identity is available to communicate, logged on to aparticular communications system, or logged on to an instant messagingsystem, and also may indicate a geographic location of thecommunications identity.

A granularity at which the geographic location is disseminated may becontrolled based on notification setting information, and a recipient ofthe geographic location may further control the granularity of thegeographic location displayed. The granularity at which the geographiclocation is disseminated or displayed may include one of a streetaddress, a city, a metropolitan area, an area within a metropolitanarea, a region of a country, or a country. The granularity at which thegeographic location is disseminated also may be controlled based onnotification setting information that is associated with a participantlist or with a category of communications identities on a participantlist.

One of many participant lists may be accessed. Each participant list mayidentify multiple communications identities designated by a user.Accessing notification setting information may include accessingnotification setting information for one or more participant lists thatidentifies a temporal condition for notifying communications identitieson a participant list such that the temporal condition includes at leastone temporal period during which notification information is to beprovided or withheld. Controlling dissemination may include controllingdissemination of notification information relating to communicationsidentities identified on the at least one of many participant lists.

Different temporal conditions may be associated with different ones ofthe participant lists. Determining whether a temporal condition issatisfied may include doing so for at least one but less than all of theparticipant lists.

Controlling dissemination comprises providing notification informationor restricting the provision of notification information. Notificationinformation may be transmitted between a mobile communications devicecapable of transmitting voice communications and an instant messagingsystem.

Notification setting information may be stored on the mobilecommunications device or on the instant messaging system. Notificationsetting information may include notification information that isassociated with one of multiple categories of notification information.Notification setting information also may be associated with a hierarchyof notification categories. One or more of the categories may be auser-definable category, and one or more of the categories may beassociated with a participant list that identifies multiplecommunications identities designated by a user.

An alert may be displayed that indicates the notification settinginformation that is to be applied based on the temporal condition, and auser may be prompted to modify the notification setting information.

When controlling dissemination of notification information includesdenying dissemination of notification information, an incomingcommunication associated with a user corresponding to the notificationinformation may be detected and the user may be alerted to the incomingcommunication. The incoming communication may include an instant messagesent to the user and also may include an attempt to determine thegeographical location of the user or other information about the user.

When the temporal condition is satisfied such that availability of theuser to communicate is hidden and the user indicates that a message isto be sent, a prompt may be displayed to alert the user that theavailability of the user to communicate will be revealed when themessage is sent.

When the temporal condition applies to all of several participant lists,each participant list may identify multiple communications identitiesdesignated by a user. The temporal condition may apply to allindividuals included in a participant list associated with the user. Thetemporal condition applied to at least one individual included in aparticipant list associated with the user may differ from a temporalcondition applied to at least one other individual included in theparticipant list.

Status information may be accessed. The status information maycorrespond to the availability of a communications identity included ona participant list that has multiple communications identities designedby the user. Notification setting information may be accessed for one ormore participant lists associated with the communications identity. Thenotification setting information may indicate a temporal condition fornotifying communication identities on one or more of the participantlists. The temporal condition may include a temporal period during whichnotification information is to be restricted. The participant list maybe passively configured to persistently conceal the status of thecommunications identity in response to a determination that the temporalcondition is not satisfied. Persistently concealing the status of thecommunications identity may include indicating that availabilityinformation for the communications identity is unknown or that thecommunications identity is not available to communicate. Persistentlyconcealing the status of the communications identity also may includeindicating that the communications identity is not logged onto aninstant message system used by the communications identity when thecommunications identity is logged onto the instant message system.

The communications identity may be a first communications identity, andinformation may be accessed that indicates that a first communicationsidentity associated with a first mobile device is associated with asecond communications identity. The first communications identity andthe second communications identity may correspond to the same naturalperson. Geographical location information that is associated with thefirst mobile device may be received. A participant list may be accessedthat identifies communications identities designated by a user that areassociated with the second communications identity. The geographicallocation information associated with the first mobile device may beprovided to the communications identities of the participant listassociated with the second communications identity. The participant listmay constitute a contact list of a mobile device capable of transmittingand receiving voice communications or may be a participant list of aninstant messaging system.

Delegation information associated with a communications identity may beaccessed. The delegation information may include multiple categories ofcommunications identities and, for at least one of the multiplecategories, may identify notification information modifications to becontrolled. A modification of notification information regarding thenotification setting information may be received from a user identityassociated with a category of the multiple categories. Delegationinformation associated with the category may be accessed, and adetermination may be made as to whether the user identity is permittedto perform the modification based on the delegation informationassociated with the category. The modification to the notificationsetting information is only permitted when the user identity ispermitted to perform the modification.

The multiple categories may include at least two categories of themultiple categories that are arranged in a hierarchical relationshipsuch that a lower category is related to a higher category. Thedelegation information associated with the higher category also may beassociated with the lower category. The user identity may be associatedwith the lower category. If so, the modification to the notificationsetting information may only be permitted when the user identity ispermitted to perform the modification based on a determination as towhether the user identity is permitted to perform the modification basedon the delegation information associated with the higher category.

The multiple categories may include a government category, a financiercategory, and a user category. The financier category may include abusiness enterprise, and the user category may include an employee. Thefinancier category also may include a parent, and the user category mayinclude a child of the parent.

Implementations of the techniques discussed above may include a methodor process, a system or apparatus, or computer software on acomputer-accessible medium.

The details of one or more of the implementations are set forth in theaccompanying drawings and description below. Other features will beapparent from the description and drawings, and from the claims.

DESCRIPTION OF DRAWINGS

FIG. 1 is a block diagram of a communications system capable ofcontrolling dissemination of notification information related to anon-line presence and a geographic location associated with a user.

FIGS. 2A and 2B are block diagrams illustrating aspects of thecommunications system of FIG. 1.

FIG. 3 is a diagram of a user interface for sending and receivinginstant messages using an instant messaging service capable ofcontrolling dissemination of notification information.

FIGS. 4A-4D are diagrams of user interfaces for participant lists thatindicate the dissemination of notification information in an instantmessaging system

FIGS. 5, 6A and 6B are diagrams depicting user interfaces foridentifying temporal periods during which notifications of geographiclocation and on-line presence are to be permitted or restricted.

FIG. 7 is a flow chart of a process for indicating how notificationinformation of geographic location or on-line presence is to bedisseminated.

FIG. 8 is a block diagram depicting a delegation model that controls hownotification setting information may be specified or modified.

FIG. 9 is a flow chart of a process for modifying notification settinginformation based on a delegation model.

FIG. 10 is a flow chart of a process for controlling dissemination ofnotification information corresponding to a communications identity.

FIGS. 11A and 11B are diagrams illustrating an exemplary process fortransmitting a notification of a geographic location of a user to acommunications identity.

FIG. 12 is a diagram showing an exemplary process for transmitting anotification of on-line presence of a user to a communications identity.

FIG. 13 is a flow chart of a process for enabling a user to overrideapplicable notification settings.

DETAILED DESCRIPTION

A user of an instant messaging system controls dissemination ofnotification information related to the user's on-line presence based ona notification setting that identifies a temporal period during whichnotification of the user's on-line presence is provided (or withheld)when other external conditions, such as characteristics of users ordevices with which the user's on-line presence is to be shared, aresatisfied. When the temporal condition of the notification setting andthe external conditions are satisfied, other users are provided withnotification of the user's on-line presence (or not if the on-linepresence is withheld according to the notification setting). Differentnotification settings having different temporal conditions also may beassociated with each of several categories of users. In such a case,when the temporal condition of a particular notification setting issatisfied, users who are associated with the category are notified. In asimilar manner, the geographic location of a mobile communicationsdevice, such as a mobile telephone, associated with a user isdisseminated to others based on a notification setting having a temporalcondition. The dissemination of the on-line presence or the geographiclocation of a user may occur between an instant messaging system and themobile communications system associated with the mobile communicationsdevice of the user. For example, notifications of the on-line presencemay be sent to the mobile communications system from the instantmessaging system, and the notifications of the geographic location maybe sent to the instant messaging system from the mobile communicationssystem.

FIG. 1 illustrates a communications system 100 capable of controllingdissemination of geographic location or on-line presence information fora user to a communications identity. In general, a geographic locationof a user is based on detecting the geographic location of a mobiletelephone, a cellular telephone or another device associated with theuser, whereas on-line presence of the user is based on detecting thatthe user has used a computer, a mobile computing device, or anotherdevice to sign on to a host system or an instant messaging systemaccessible through a data network. Information related to a geographiclocation and an on-line presence of a communications identitycollectively may be referred to as notification information. The system100 enables the user to control the dissemination of notificationinformation, for example, based on the group identity of thecommunications identity to whom the disclosure of notificationinformation is to be made or a temporal constraint directly orindirectly associated with the communications identity.

In particular, the communications system 100 includes a cellular system110 capable of communicating with an instant messaging system 140 over atelephone network 130 and a data network 170. The telephone network 130may be a Public Switched Telephone Network (PSTN) or a Voice OverInternet Protocol (VoIP) network. The cellular system 110 also iscapable of communicating with mobile telephones 120 a and 120 b,respectively, over wireless communication pathways 118 a and 118 b. Whena telephone call occurs between two mobile telephones 120 a and 120 b,the cellular system 110 routes the telephone call.

The cellular system 110 includes geographic location information 112that includes information on the geographic locations of each of mobiletelephones 120 a and 120 b that use the cellular system 110. This may beaccomplished, for example, by storing in a data table, list or anothertype of data collection an association between a unique identifier foreach of the mobile telephones 120 a and 120 b and the geographiclocation of the mobile telephone 120 a or 120 b. A unique identifier forthe mobile telephone 120 a or 120 b, for example, may be the telephonenumber of the mobile telephone, a mobile electronic identity number(MEIN), a mobile identification number (MIN), a proprietary uniqueidentifier (such as an account identifier), or another type ofidentifier that uniquely identifies a mobile telephone or a mobiletelephone subscriber.

The cellular system 110 also is capable of detecting, or receivingindications of, the geographic locations of the mobile telephones 120 aand 120 b and storing the geographic locations of the mobile telephones120 a and 120 b in geographic location information 112. In one example,the geographic location of a mobile telephone 120 a or 120 b is receivedfrom the mobile telephone 120 a or 120 b itself. Additionally oralternatively, the cellular system may detect the geographic location ofeach of the mobile telephones 120 a or 120 b. For example, in oneimplementation, the cellular system 110 uses triangulation based onperceived distance of the mobile telephones 120 a and 120 b frommultiple elements of the cellular system 110 (e.g., transmission towers)to determine the geographic locations of the mobile telephones 120 a and120 b. The perceived distance of the mobile telephones 120 a and 120 bis calculated from the time needed for signals from the mobiletelephones 120 a and 120 b to reach the cellular system 110. In anycase, the cellular system 110 stores the geographic locations of themobile telephones 120 a and 120 b in the geographic location information112.

The cellular system 110 also includes geographic location notificationinformation 114 that is used to control how the geographic locationinformation 112 is to be disseminated. More particularly, the geographiclocation notification information 114 specifies communicationsidentities (each of which typically identifies a person) with whom thegeographic location information 112 is to be shared or withheld. Thegeographic location notification information 114 also may identify datesand times during which geographic location information 112 is to beshared or withheld. In addition, the geographic location notificationinformation 114 may identify other conditions that determine how thegeographic location information 112 is to be shared or withheld. Theother conditions may consider a type of device to which the geographiclocation information 112 will be sent, or characteristics of users towhom the geographic location information 112 will be sent, whendetermining how the geographic location information 112 is to be sharedor withheld.

A user of a mobile telephone 120 a or 120 b may control the users withwhom the geographic location information for the mobile telephone 120 aor 120 b is shared or withheld, except as required by law or governmentregulation or based on delegation information 116 described later. Inone example, the user may specify that the geographic locationinformation for the mobile telephone 120 a or 120 b may be shared onlyat particular time periods or with particularly identified people, suchas people identified on a contact list 122 a or 122 b associated withthe respective mobile telephone 120 a or 120 b. In some implementations,copies of the contact lists 122 a and 122 b also are stored on thecellular system 110.

In some cases, the user's ability to control with whom the geographiclocation information is shared or withheld may be restricted bydelegation information 116 included in the cellular system 110. Thedelegation information 116 may reflect a delegation model thatidentifies categories of users, and, for each category, identifiesparticular restrictions on how the geographic location information 112is to be shared or withheld. For example, the delegation model mayindicate that the geographic location information 112 is to be sharedwith all members of a particular category, regardless of what is, or isnot, specified in the geographic location notification information 114.In one implementation, the categories may form a hierarchy in whichlower categories have more restrictions on how the geographic locationinformation 112 is to be shared or withheld than higher categories. Insome implementations, the restrictions of the delegation model mayoverride the geographic location notification information 114.

The mobile telephones 120 a and 120 b each include a respective contactlist 122 a or 122 b that includes contact information for people thatmay be called with the mobile telephones 120 a or 120 b. For example,the contact list 122 a or 122 b may include associations ofcommunication identities and telephone numbers. One example is theassociation of the communication identity “Mother” (here, a nickname isused rather than a proper name) and a telephone number that may be usedto contact the communication identity. The contact list 122 a or 122 benables a mobile telephone user to access contact information for use indisplaying the contact information or using the contact information toinitiate a telephone call. Not all of the communication identities inthe contact list 122 a or 122 b are necessarily called with the mobiletelephone. Similarly, telephone numbers not included in the contact list122 a or 122 b may be called using the mobile telephone.

In some implementations, either or both of the mobile telephones 120 aand 120 b may be operable to notify the cellular system 110 of itsgeographic location. For example, each of the mobile telephones 120 aand 120 b may include a respective global positioning system (GPS)receiver 124 a or 124 b operable to determine the geographic location ofthe corresponding mobile telephone 120 a or 120 b. The geographiclocation determined using the GPS receiver 124 a or 124 b may betransmitted to the cellular system 110 over the respective wirelesscommunication pathway 118 a or 118 b.

The communications system 100 also includes an instant messaging system140. The instant messaging system 140 enables users of computers 150 aand 150 b to communicate with one another. Users may use one of thecomputers 150 a or 150 b to sign-in (or log-in) to a host system 160that provides a connection to the data network 170. In oneimplementation, the host system 160 is operated by an Internet serviceprovider (ISP) or an Internet access provider and also provides anelectronic mail system 162. Since the instant message system 140 also isconnected to the data network 170, the computers 150 a and 150 b areindirectly connected to the instant messaging system 140. This enablesusers of the computers 150 a and 150 b to communicate using instantmessages. Alternatively or additionally, users of the computers 150 aand 150 b may connect directly to the data network 170, and hence to theinstant messaging system 140, without connecting through the host system160. The computers 150 a and 150 b may be any device that may be used tosend and receive communications, such as, for example, a desktopcomputer, a laptop computer, a personal digital assistant (PDA), or amobile telephone. In general, presence refers to the availability of auser of a device to communicate using the device. In someimplementations, one of the mobile telephones 120 a and 120 b and one ofthe computers 150 a and 150 b may be the same device.

The instant messaging system 140 includes on-line presence information141 that includes information on the on-line presence of users. On-linepresence of a user refers to the availability of the user to communicateusing the instant messaging system 140. In one example, a user may bedesignated as “present” when the user has used a computer 150 a or 150 bto log in to the instant messaging system 140 and is available to sendand receive instant messages. As another example, a user is designatedas “present” if the user is using a computer 150 a or 150 b and has notbeen inactive for a predetermined amount of time. If a user has not usedthe instant messaging system 140 for a particular amount of time, or ifthe user has explicitly indicated that the user is unavailable tocommunicate with the instant messaging system 140, the user may bedesignated as “not present.” In addition, if a user is communicating andis unable to participate in further communication, the user may bedesignated as “not present.” For example, a user who is connected to theinstant messaging system 140 through a mobile telephone may bedesignated as “not present” when engaged in a conversation using themobile telephone if the user is unable to simultaneously participate ininstant messaging communication. Signing in to the instant messagingsystem 140 notifies the instant messaging system 140 of the on-linepresence of the user, and the instant messaging system 140 stores thatinformation in the on-line presence information 141.

The instant messaging system 140 includes on-line presence notificationinformation 143 for use in controlling how on-line presence information141 of an instant messaging user is to be disseminated. Moreparticularly, the on-line presence notification information 143specifies other users of the instant messaging system 140 with whom theon-line presence information 141 is to be shared or from whom theinformation 141 is to be withheld. The other users of the instantmessaging system 140 may be referred to as communications identities.The on-line presence notification information 143 also may identifydates and times during which on-line presence information is to beshared or withheld. In addition, the on-line presence notificationinformation 143 may identify other conditions that determine how theon-line presence information 141 is to be shared or withheld. The otherconditions may consider a type of device to which the on-line presenceinformation 141 will be sent, or characteristics of users to whom theon-line presence information 141 will be sent, when determining how thegeographic location information 112 is to be shared or withheld.

A user of the instant messaging system 140 may control the users withwhom the on-line presence information is shared. For example, the useris to may specify that the on-line presence information for the user beshared with all or a subset of the people on a user-created list ofpeople with whom instant messages are exchanged. The list of people isstored in the participant lists 145 and is commonly referred to as a“buddy list.”

In some cases, the user's ability to control with whom the on-linepresence information is shared may be restricted by the delegationinformation 147. As with delegation information 116 of the cellularsystem 110, the delegation information 147 may be based on a delegationmodel that identifies categories of users and, for each category,designates restrictions on how the on-line presence information 141 isto be shared or withheld. The delegation model for delegationinformation 147 may be substantially the same delegation model as isused for delegation information 116 of the cellular system 110, but itdoes not necessarily need to be the same or substantially similar.

The instant messaging system 140 also may include account linkinginformation 149. Each user of the instant messaging system 140 holds atleast one account with the instant messaging system 140. When a userlogs in to the instant messaging system 140, the user providesauthentication information for one of the corresponding accounts. Afterthe authentication information has been verified, the user appears to belogged in to the instant messaging system 140 through the account.

Relationships may be established between the accounts corresponding tothe user such that when the user logs in to the instant messaging system140 with one account, the user appears to be logged in to the instantmessaging system 140 through all accounts linked to the account used tolog in. In such a case, on-line presence information may be shared forall of the linked accounts. A similar feature may be present for usersof the cellular system 110, in which case multiple accounts with thecellular system 110 are linked and geographic location information isshared for all linked accounts based on the geographic location of oneof the linked accounts. In some systems, account information of a mobiletelephone owner or user may be linked with one or more instant messagingaccounts. Such account or identity linking may enable the control of thedissemination of presence information and geographic location acrossmultiple accounts of various types used by the same person. For example,an account with the electronic mail system 162, an account with thecellular system 110, and an account with the instant messaging systemheld by one person may be linked together. Use of the electronic mailsystem 162 may lead to the dissemination of geographic locationinformation to other users of the cellular system 110 or the instantmessaging system 140.

In some implementations, the geographic location information 112 may beshared with users of the instant messaging system 140, and the on-linepresence information 143 may be shared with users of the cellular system110. For example, a user may use both a mobile telephone 120 a and acomputer 150 a to communicate. While using the computer 150 a to sendand receive instant messages, the user may want to know the geographiclocation of a person that is identified on the contact list 122 a of themobile telephone 120 a. Similarly, the user may want to know the on-linepresence of a person with whom instant messages are exchanged with theinstant messaging system 140 while using the mobile telephone 120 a.Therefore, the telephone network 130 and the data network 170 are usedto allow the cellular system 110 and the instant messaging system 140 tocommunicate to share geographic location information 112 and on-linepresence information 143.

The host system 160 also includes an electronic mail (e-mail) system 162that may be accessed by users of the computers 150 to send and receiveelectronic mail. Users of the mobile telephones 120 a and 120 b also mayaccess the e-mail system to send and receive electronic mail using themobile telephones 120 a and 120 b. More particularly, the mobiletelephones 120 a and 120 b may access the electronic mail system 162 byusing the cellular system 110, the telephone network 130, and the datanetwork 170 to access the host system 160 on which the electronic mailsystem 162 is located. The mobile telephones 120 a and 120 b are capableof sending and receiving electronic mail messages using short messageservice (SMS) or i-mode. SMS and i-mode are protocols by which textmessages, such as e-mail messages, may be sent to and from the mobiletelephones 120 a and 120 b.

FIGS. 2A and 2B illustrate one particular implementation of acommunications system 200 to show the structure generally included withrespect to the communications system 100 of FIG. 1. In fact, using thestructure and organization shown by FIG. 1, FIGS. 2A and 2B provide anillustration of the systems that may be used to implement each ofcellular system 110, telephone network 130, instant messaging system140, and data network 170. The communications system 200 includes acellular system 110 that is accessed by one or more mobile telephones120 a and 120 b and is capable of detecting or receiving an indicationof the geographic location of each of the mobile telephones 120 a and120 b. The mobile telephones 120 a and 120 b communicate with thecellular system 110 in order to make and receive telephone calls.

More particularly, the cellular system 110 includes base stations 212 a,212 b and 212 c. When either of the mobile telephones 120 a or 120 b isturned on, the mobile telephone 120 a or 120 b finds the nearest basestation 212 a, 212 b or 212 c and establishes a communications link withthat base station. For example, the mobile telephone 120 a establishes acommunications link with the base station 212 b since the base station212 b is closest to the mobile telephone 120 a, and the mobile telephone120 b establishes a communications link with the base station 212 csince the base station 212 c is closest to the mobile telephone 120 b.The process of establishing a communications link with a base station212 a, 212 b or 212 c is called registration. The base stations 212 a,212 b and 212 c include antennas, amplifiers, receivers, transmitters,and similar hardware for sending signals to and receiving signals fromthe mobile telephones 120 a and 120 b. Each base station may sendsignals to and receive signals from multiple mobile telephones 120 a and120 b. When a user of a first mobile telephone 120 a places a call to auser of a second mobile telephone 120 b, the first mobile telephone 120a communicates with the base station 212 b with which registration hasoccurred. More particularly, when the user speaks into the first mobiletelephone 120 a, the speech is converted into an analog or digital audiosignal that is transferred to the base station 212 b.

The base station 212 b sends the audio signal to a mobile switchingcenter 230. While only a single mobile switching center 230 is show, thecellular system 110 typically includes more than one mobile switchingcenter 230. The mobile switching center 230 is responsible for sendingsignals to and receiving signals from multiple base stations 212 a, 212b and 212 c, but no base station 212 a, 212 b or 212 c communicates withmultiple mobile switching centers 230. The mobile switching center 230is operable to route the audio signal received from the base station 212b that communicates with the first mobile telephone 120 a. Each mobileswitching center 230 includes a communications module 231 thatdetermines how the audio signal is to be routed and that sends the audiosignal to the appropriate destination. The mobile switching center 230also includes a short message service module 235 that is similar infunction to the communications module 231. However, while thecommunications module 231 determines how audio signals are routed, theshort message service module 235 determines how text messages are routedbetween the mobile telephones 120 a and 120 b.

When the second mobile telephone 120 b communicates with a base station212 c that is serviced by the same mobile switching center 230 as thebase station 212 b with which the audio first mobile telephone 120 acommunicates, the mobile switching center 230 simply forwards the audiosignal to the base station 212 c, and the base station 212 c forwardsthe audio signal to the second mobile telephone 120 b so that the userof the second mobile telephone 120 b is able to hear what the user ofthe first mobile telephone 120 a said. In contrast, when the secondmobile telephone 120 b and the first mobile telephone 120 a communicatewith base stations that are not serviced by the same mobile switchingcenter 230, then the mobile switching center 230 sends the audio signalto a gateway mobile switching center 240 for further routing of the callto the appropriate mobile switching center and, subsequently, to thesecond mobile telephone 120 b.

The cellular system 110 includes one gateway mobile switching center240. The gateway mobile switching center 240 takes calls from one ormore mobile switching centers 230 and routes the calls to theappropriate destination. The gateway mobile switching center 240includes a communications device 242 that is operable to determine howthe calls are to be routed and, based on the determination, to route thecalls to the appropriate destination. For example, if the first mobiletelephone 120 a and the second mobile telephone 120 b are serviced bydifferent mobile switching centers, then a call placed from the firstmobile telephone 120 a to the second mobile telephone 120 b is routedthrough the base station 212 b and a mobile switching center 230 nearthe first mobile telephone 120 a, through the gateway mobile switchingcenter 240, through a different mobile switching center 230 and basestation 212 c near the second mobile telephone 120 b, and, finally, tothe second mobile telephone 220 b itself.

The gateway mobile switching center 240 also includes a wirelessapplication protocol (WAP) gateway 244. WAP is a standard with whichwireless devices, can access a data network. As such, the WAP gateway244 provides a route by which the mobile telephones 120 a and 120 b canaccess the data network 170. For example, when a mobile telephone 120 aor 120 b attempts to access the data network 170, the signal from themobile telephone 120 a or 120 b is routed through one of the basestations 212 a-212 c, the mobile switching center 230, and the WAPgateway 244 of the gateway mobile switching center 240 before travelingthrough the telephone network 130 to reach the data network 170.

When the call from the first mobile telephone 120 a is placed to agrounded telephone (not shown) connected to the telephone network 130instead of the second mobile telephone 120 b, the gateway mobileswitching center 240 routes the call to the telephone network 130, andthe telephone network 130 routes the call to the grounded telephone.Similarly, when the call from the first cellular system 120 a is placedto an external cellular system (not shown) that is different from thecellular system 210 used by the first mobile telephone 120 a, thegateway mobile switching center 240 routes the call to the telephonenetwork 130, the telephone network 130 routes the call to the externalcellular system, and the external cellular system routes the call to thefinal destination.

The communications system includes a host system 160 to which computers150 a and 150 b may be connected. Users of the computers 150 a and 150 bhave accounts with the host system 160. The users enter information toauthenticate the accounts, and the authentication information isverified by a host system login server 272. If the host system loginserver 272 verifies the authentication information, then the computer150 a and 150 b are allowed to access the host system 160.

For example, after logging in to the host system 160, the users mayaccess an electronic mail system 162. The electronic mail system 162includes a secure mail transfer protocol (SMTP) server 274 that is usedto send messages created by the users of the computers 150 a and 150 b.Messages sent to the users are stored on a server 275 that implementsthe post office protocol (POP) or the Internet message access protocol(IMAP). After a user logs in to the host system 160 and accesses theelectronic mail system 162, the user may request to view messages storedon the POP or IMAP server 275. The messages are transferred from the POPor IMAP server 275 to the computer that the user is using.

The electronic mail system 162 also includes a mobile telephone e-mailgateway 276 with which users of the mobile telephones 120 a and 120 bmay access the electronic mail system 162. By way of example, when auser of the mobile telephone 120 a wishes to access the electronic mailsystem 162, a connection between the mobile telephone 120 a and the hostsystem 160 must be established. To do so, the mobile telephone 120 aaccesses the WAP gateway 244 of the gateway mobile switching center 240,and the WAP gateway 244 provides a connection to the data network 170 towhich the host system 160 is connected. The user of the mobile telephone120 a logs in to the host system 160 with the host system login server272. After logging in, the user of the mobile telephone 120 a may accessthe SMTP server 274 and the POP or IMAP server 275 to send and receiveelectronic mail through the mobile telephone e-mail gateway 276.

After logging in to the host system 160, users of the computers 150 aand 150 b may access an instant messaging system 140. Similarly, usersof the mobile telephones 120 a and 120 b may access the instantmessaging system 144 through the WAP gateway 244. The instant messagingsystem 140 is used to send text-based messages between the users. Eachuser has an account with the instant messaging system that isauthenticated before any instant messages are sent or received by theuser. The user uses a computer 150 a or 150 b or a mobile telephone 120a or 120 b to enter information to authenticate the account, and theinformation is sent to an instant messaging login server 281 included inthe instant messaging system 140. The instant messaging login server 281verifies that the authentication information is correct and enables theuser to access an instant messaging server 282. The instant messagingserver 282 facilitates the transfer of messages between users.

The geographic locations of the mobile telephones 120 a and 120 b may beinferred from the connection of the mobile telephones 120 a and 120 b tothe cellular system 110. In one implementation, signals from the mobiletelephones 120 a and 120 b may be received by multiple base stations 212a-212 c. The distance between a mobile telephone 120 a or 120 b and thebase stations 212 a-212 c may be determined from the time needed for asignal to travel from the mobile telephone 120 a or 120 b to the basestations 212 a-212 c, since distance is proportional to the time neededfor the signal to travel from the mobile telephone 120 a or 120 b to thebase station 212 a, 212 b, or 212 c. Since the geographic locations ofthe base stations 212 a-212 c are known, the geographic location of themobile telephone 120 a or 120 b can be determined based on the distanceof the mobile telephone 120 a or 120 b from the base stations 212 a-212c.

More particularly, the mobile telephone is located somewhere on a circlecentered at the base station with a radius equal to the distance betweenthe mobile telephone and the base station. When the distance of themobile telephone from multiple base stations is known, triangulation maybe used to more accurately determine the geographic location of themobile telephone. More particularly, the intersection of the sets ofpossible locations of the mobile telephone relative to the multiple basestations (i.e., the circles of possible locations of the mobiletelephones around the base stations) defines the possible geographiclocations of the mobile telephone. When distances from two base stationsare known, triangulation results in two possible geographic locationsfor the mobile telephone. When distances from more than two basestations are known, triangulation results in a single possibledetermination of the geographic location.

In another implementation, a less precise geographic location of themobile telephone 120 a or 120 b is determined by identifying the basestation with which the mobile telephone is communicating. Based on thisidentification, the location of the mobile telephone is designated asbeing “near” the geographic location of the base station.

In yet another implementation, the mobile telephones 120 a and 120 b mayuse the included GPS receivers 124 a and 124 b, respectively, todetermine the location of the mobile telephones 120 a and 120 b. Themobile telephones 120 a and 120 b transfer the geographic locationidentified with the GPS receivers 124 a and 124 b to the cellular system110 for use.

In yet another implementation, the location of the mobile telephones 120a and 120 b may be indicated by users of the mobile telephones 120 a and120 b. For example, the users may specify the geographic locations ofthe mobile telephones 120 a and 120 b, and the geographic locations maybe transferred to and stored in the geographic location information 112.

FIG. 3 illustrates an instant messaging interface 300 with which instantmessages may be sent and received. In response to use of the instantmessaging interface 300, notification information may be disseminated ina manner that is controllable by a user of the instant messaginginterface 300. After a sender of instant messages is notified that arecipient is “present” and available to send and receive instantmessages, the sender may use the instant messaging interface 300 toexchange instant messages with the recipient. The instant messaginginterface 300 includes a message history box 305 that lists the instantmessages sent between the sender and the recipient. The message historybox 305 also may be referred to as a message transcript box 305. Eachmessage is presented with an indication of a screen name by which thesender or the recipient is identified as the source of the message. Eachmessage listed in the message history box 305 also includes the text ofthe instant message sent by the sender or the recipient. For example,the message history box 305 includes a message 306 sent by a user with ascreen name “ProductRep” and a message 307 sent by a user with a screenname “Subscriber.” The users that sent the messages 306 and 307 are,respectively, the sender and the recipient. In one implementation, eachmessage listed in the message history box 305 includes a time stamp ofwhen the message was sent.

The instant messaging interface also includes a message specificationbox 310 in which the sender may specify a message to be sent to therecipient. The sender may enter text to be sent to the recipient in themessage specification box 310. The instant message interface 300includes a set of format controls 315 that may be used to format thetext entered in the message specification box 310. More particularly,the controls in the format controls 315 enable the user to change thesize, foreground color, background color, style, and effects of the textentered in the message specification box 310. The format controls 315also include controls for inserting objects that are not plain text,such as hyperlinks and emoticons, into the message specification box310.

After a message has been specified in the message specification box 310,it may be sent by selecting a send button 318 included in a second setof controls 320. After the send button 318 has been selected, the textthat has been entered in the message specification box 310 is sent tothe recipient, the message specification box 310 is cleared, and themessage is added to the message history box 305. The message also isdisplayed in a message history box 305 of an instance of the instantmessaging interface 300 being viewed by the recipient. Also included inthe second control set 320 are controls for warning (321) or blocking(322) instant messages or adding (323) the recipient to a participantlist maintained by the sender.

FIGS. 4A and 4B are illustrations of participant list interfaces 400Aand 400B for an instant messaging system that indicate whether themembers of a participant list are to receive notifications of geographiclocation or on-line presence of a user of the participant listinterfaces 400A and 400B. Each of the participant list interfaces 400Aand 400B includes a participant list 405. The people included in theparticipant list 405 may be separated into one or more groups, and adetermination of whether the members of the participant list 405 aresent notifications of geographic location or on-line presence may bespecified on a group-by-group basis. For example, the participant list405 in the participant list interface 400A includes a group named“Recent Contacts,” and the members of the “Recent Contacts” groupreceive notifications of geographic location, as evidenced by thegeographic location icon 410 next to the heading of the “RecentContacts” group. Similarly, the participant list 405 in the participantlist interface 400A includes a group named “Family,” and the members ofthe “Family” group are not to be provided with notifications ofgeographic location of the user, as evidenced by the negative geographiclocation icon 415 next to the heading of the “Family” group.

Whether the members of the participant list 405 are provided withnotifications of the user's geographic location or on-line presence alsomay be specified on a member-by-member basis. For example, theparticipant list 405 in the participant list interface 400B includes ascreen name “Boss.” The member corresponding to the screen name “Boss”is sent notifications of on-line presence of the user, as evidenced byan on-line presence icon 420 next to the screen name “Boss.” Similarly,the participant list 405 in the participant list interface 400B includesa screen name “SalesRep.” The member corresponding to the screen name“SalesRep” is not sent notifications of on-line presence of the user, asevidenced by negative on-line presence icon 425 next to the screen name“SalesRep.”

Entire groups in the participant list 405 also may be provided orexplicitly not provided with notifications of on-line presence, and thismay be evidenced through the display of an on-line presence icon or anegative on-line presence icon next to one of the group headings in theparticipant list 405. Similarly, individual members of the participantlist 405 also may optionally be provided with notifications ofgeographic location, and this may be evidenced through the display of ageographic location icon or a negative geographic location icon next toan individual screen name in the participant list 405.

In addition, individual members of a group may be opted out of thestatus assigned to the group. For example, in FIG. 4A, a negativegeographic location icon could be used to indicate that “Sales Rep” isnot to receive geographic location information even though the “RecentContacts” group to which “Sales Rep” belongs is authorized to receivesuch information.

Notifications of geographic location or on-line presence may be sent tolocations external to the instant messaging system for which theparticipant list interfaces 400A and 400B are displayed. For example,notifications of geographic location may be sent from the instantmessaging system to a cellular telephone system. When notifications aresent to an external system, an external system icon 430 is placed nextto one of the icons 410 or 420 displayed with the group or screen nameto which the notifications are sent. For example, the notifications ofgeographic location that are sent to the members of the “RecentContacts” group of the participant list 405 of the participant listinterface 400A are sent to an external communications system. This isevidenced by the external system icon 430 that is displayed next to thegeographic location icon 410.

The user may define time periods and may designate the people to whomnotifications are sent based on a current time period. The nature andmeans of specifying the time period is described below with respect toFIGS. 5 and 6. The participant list interfaces 400A and 400B include anindicator 435 that indicates the time period that is currently occupied.For example, the indicator 435 indicates that a time period that theuser has named “Personal Time” is currently occupied. Notifications aresent according to the definition of the “Personal Time” time period. Theuser may choose to override the notification settings defined for the“Personal Time” time period through selection of an override button 440.Selecting the override button 440 causes notifications to be withheldbecause the definition of the “Personal Time” time period calls fornotifications to be sent to certain members of the participant list 405.

FIGS. 4C and 4D illustrate participant list setup interfaces 400C and400D with which the people to whom notifications of geographic locationor on-line presence are sent may be specified. Each of the participantlist setup interfaces 400C and 400D includes a participant list 455 thatincludes screen names of people with whom instant messages are exchangedusing an instant messaging system. Names may be added to and removedfrom the participant list 455 using the participant list setupinterfaces 400C or 400D. Names may be separated into groups and groupsmay be created or removed with the participant list interfaces 400C or400D.

Groups or individual users may be selected to receive notifications ofon-line presence or geographic location, and the display of icons 460,465, 470, and 475 next to the names of the groups or the individualusers indicate if and what kind of notifications are to be received. Anexternal system icon 480 indicates whether notifications for thecorresponding group or individual user are sent to an external system.For example, notifications may be sent from the instant messaging systemfor which the participant list setup interfaces 400C and 400D aredisplayed to a cellular telephone system when the notification settingsspecify that a user of the cellular telephone system may be sentnotification information. The icons 460-480 have a similar meaning andinterpretation as the icons 410-430 of FIGS. 4A and 4B.

The participant list setup interfaces 400C and 400D include a setupbutton 485 that may be selected to enable the specification ofnotification settings for the people included in the participant list455. In one implementation, selecting the setup button 485 displays aninterface for specifying notification settings

FIG. 5 illustrates a user interface 500 with which settings related tonotifications of on-line presence and geographic location may bespecified. The notification settings interface 500 enables thespecification of dates and times during which notifications of on-linepresence and geographic location of a user may be sent to particularpeople or groups of people with whom communication occurs. Thenotification settings interface 500 also enables the specification ofdates and times during which notifications are not sent to particularpeople or groups of people with whom the user communicates. The userinterface 500 may be implemented on the instant messaging system 140,the computer 150 a or 150 b, or the host system 160 of FIG. 1. A user ofthe computer 150 a or 150 b may access the user interface 500 from theinstant messaging system 140 or the host system 160 if the userinterface 500 is not implemented on the computers 150. The notificationsettings specified through use of the user interface 500 are stored inthe geographic location notification information 114 or on-line presencenotification information 143 of FIG. 1.

Typically, the user using the user interface 500 to enter or raisenotification settings is the same user to whom the notification settingsapply. However, this is not necessarily so. In some implementations, auser may delegate authorization to another user to modify notificationsettings on the user's behalf. For example, a user that is a child maydelegate authorization to a parent to modify notification settings onthe child's behalf, and the parent may use the user interface 500 to doso. As another example, users under the jurisdiction of a government maydelegate authority to the government to modify notification settings onbehalf of the users. As yet another example, an employee may delegateauthorization to modify notification settings to art employer.Typically, authorization to modify notification settings is delegated toa user of a higher status. However, the authorization may be delegatedto a user of a lower status. For example, a parent may delegate theauthorization to a child, a government may delegate the authorization tousers under the jurisdiction of the government, or an employer maydelegate the authorization to an employee,

The notification settings interface 500 includes a participant listwindow 510 of participant lists maintained by the user. Each participantlist includes names of people with whom communication regularly occurs.The communication may be in the form of instant messages and/or mobiletelephone calls. The participant list window 510 may be separated intogroups, and similar participant lists may be placed in the same group.For example, the participant list window 510 includes three groups 512a-512 c. The group 512 a is for participant lists that include friends,such as a gaming friends participant list 514 a, a college friendsparticipant list 514 b, and a card-playing friends participant list 514c. Similarly, a family group 512 b is for of participant lists thatinclude family members, such as an immediate family participant list 514d and an in-laws participant list 514 e. Finally a work group 512 cincludes a co-workers participant list 514 f, a clients participant list514 g, and a managers participant list 514 h.

Each of the participant lists 514 a-514 h may be a buddy list from aninstant messaging system, a contact list of a cellular telephone system,or another list including contact information. In one implementation,the participant lists 514 a-514 h may be of mixed types. For example,the participant list 514 a may be a buddy list from an instant messagingsystem while the participant list 514 b may be a contact list from acellular telephone system. In another implementation, one of theparticipant lists 514 a-514 h may include contact information ofmultiple types. For example, the participant list 514 c may includeinstant messaging screen names and mobile telephone numbers.

The groups 512 a-512 c and the participant lists 514 a-514 h may beexpanded and collapsed to display the contents of the groups 512 a-512 cand the participant lists 514 a-514 h. Expanding one of the groups 512a-512 c makes visible the names of the participant lists that areincluded in the group, while collapsing one of the groups 512 a-512 chides the names of the participant lists that are included in thecollapsed group. Similarly, expanding one of the participant lists 514a-514 h makes visible the communications identities included in theexpanded list, while collapsing one of the participant lists 514 a-514 hhides communications identities included in the collapsed list.Simultaneously expanding and collapsing the groups 512 a-512 c and theparticipant lists 514 a-514 h makes visible the hierarchy ofcommunications identifiers. For example, the groups 512 a-512 c occupythe top level of the hierarchy, the participant lists 514 a-514 h occupythe next lower level, groups within the participant lists 514 a-514 hoccupy the next level, and the individual communications identifierswithin the participant groups occupy the bottom level. Notificationssettings may be created for each element in the hierarchy. Notificationsettings specified for a particular element in the hierarchy apply toall communications identifiers below the element in the hierarchy,unless settings for underlying elements are affirmatively changed. Inanother implementation, the set of communications identifiers includedin the participant lists 514 a-514 h may be modeled as a single listwithout a hierarchical structure.

The notification settings interface 500 also includes a notificationsettings window 520 that displays notification information for an itemselected from the participant list window 510. The item selected fromthe participant list window 510 may be a group of participant lists,such one of the groups 512 a-512 c. The item may be an individualparticipant list from within a group of participant lists, such as oneof the participant lists 514 a-514 h. The item may be a group ofcommunications identities from within a participant list, or the itemmay be an individual communications identity. The item also may be acombination of groups, participant lists, groups from a participantlist, or communications identities. The item may be selected through useof a pointing device or by typing the name of the item to be selected.

Here, the work group 512 c has been selected from the participant listwindow 510, and information from the notification settings window 520applies to all communications identities identified in the participantlists 514 f-514 h. The notification settings window 520 includes asettings list 530 with multiple settings 532-538 that specify differentdates and times during which notifications are or are not sent to allcommunications identities identified in the participant lists 514 f-514h. For example, the setting 532 specifies that no notifications are tobe sent all day on Sunday, because the setting 532 is listed as private.Similarly, the setting 534 indicates that no notifications are to besent from 6 P.M. to midnight on Friday, and the setting 536 indicatesthat no notifications are to be sent all day on Friday, Nov. 27, 2003.The setting 538 currently does not specify a temporal period duringwhich notification information is to be sent or withheld.

More particularly, each of the settings was created through use of acreate setting window 540. All of the settings 532-538 are initiallyunspecified. Selection of one of the settings 532-538 displays a createsetting window 540. The create setting window 540 includes a settingtype option 541. Setting the setting type option 541 to “notify”indicates that notifications are to be sent during the date and timespecified with the notification setting tool 540. On the other hand,setting the setting type option 541 to “private” indicates thatnotifications are not to be sent during the date and time specified withthe notification setting tool 540. When the create setting window 540was displayed for the settings 532, 534, and 536, the setting typeoption 541 was set to “private.” In one implementation, the setting typeoption has a default value of “notify.” In another implementation, thesetting type option has a default value of “private.”

A starting date and time of the period during which the setting beingspecified with the create setting window 540 is to be applied may bespecified. A date on which the time period begins may be specified in astart date field 543. In one implementation, the start date field 543 isused to specify a particular month, day, and year on which the timeperiod is to begin. For example, when the create setting window 540 wasdisplayed for the setting 536, the date “Nov. 27, 2003” was specified inthe start date field 543. In another implementation, the start datefield 543 is used to specify days of the week on which the time periodis to begin. For example, when the create setting window 540 wasdisplayed for the settings 532 and 534, the days “Sunday” and “Friday,”respectively, were specified. When a day of the week is specified in thestart date field 543, then the corresponding setting applies each week,beginning on the day specified in the start date field 543. In anotherimplementation, more complicated repetitions, such as once a month, maybe specified with the start date field 543.

A starting time of the period during which the setting being specifiedwith the create setting window 540 is to be applied may be specifiedwith a start time field 545. The start time field 545 may be used tospecify an hour and minute at which the setting is to take effect. Forexample, when the create setting window 540 was displayed for thesetting 534, the time 6:00 P.M. was specified in the start time field545. More abstract times, such as “morning,” “evening,” or “all day” maybe specified in the start time field. For example, the setting “all day”was selected from the start time field when the create setting window540 is displayed for the settings 532 and 536.

An ending date and time of the period during which the setting beingspecified with the create setting window 540 is to be applied may bespecified in an end date field 547 and an end time field 549,respectively. The end date field 547 is similar to the start date field543 in the information that it may be used to specify. The informationmay be a specific month, day, and year on which the time period duringwhich the corresponding setting applies is to end. For example, when thecreate setting window 540 was displayed for the setting 536, the date“Nov. 27, 2003” was specified in the end date field 547. In oneimplementation, the value of the end date field 547 is set to the valuespecified in the start date field 543 once a value has been specified inthe start date field 543. In another implementation, the end date field547 is used to specify a day of the week on which the time period is toend. For example, when the create setting window 540 was displayed forthe settings 532 and 534, the days Sunday and Friday, respectively, werespecified. When a day of the week is specified in the end date field547, then the corresponding setting applies each week, ending on the dayspecified in the end date field 547. In another implementation, morecomplicated repetitions, such as once a month, may be specified with thestart date field 547.

An ending time of the period during which the setting being specifiedwith the create setting window 540 is to be applied may be specifiedwith an end time field 549. The end time field 549 may be used tospecify an hour and minute at which the setting is to stop takingeffect. For example, when the create setting window 540 was displayedfor the setting 534, the time “12:00 A.M.” was specified in the end timefield 549. When an abstract time, such as “morning,” “evening,” or “allday” has been specified in the start time field 545, then the end timefield 549 may be set to the same abstract time.

The user interface 500 includes a scope window 550, and the optionswithin the scope window 550 determine the type of notifications to besent or withheld from the communications identities corresponding to theitem selected from the participant list window 510. Options 552 and 554determine whether the settings 532-538 in the settings list 530 areapplied to geographic location notifications and/or on-line presencenotifications. More particularly, selecting a geographic location option552 causes the entries 532-538 in the settings list to be applied togeographic location notifications. Similarly, selecting an on-linepresence option 554 causes the entries 532-538 in the settings list tobe applied to on-line presence notifications. The setting of one of theoptions 552 or 554 does not affect the setting of the other option 552or 554, though both options may be set.

The notification settings interface 500 includes an override option 560that may be selected to allow the current notification settings tooverride any other notification settings that have been specified forthe communications identities corresponding to the item selected in theparticipant list window 510. For example, a user may wish to alwaysprovide notification information to a spouse, so the user may select theoverride option 560 and specify a setting in the setting list 530 thatdictates that the spouse is always provided with notificationinformation. In this case, the setting to always provide the spouse withnotification information overrides any other settings that control hownotification information is disseminated to the spouse. As anotherexample, a user may specify that no notification settings are to be sentduring the weekend, but a client may wish to be provided withnotification information during a particular weekend. In such a case,the user may create a notification setting that dictates that the clientis to be sent notification information over the particular weekend andthat overrides any other settings for the client. In one implementation,the system is configured to detect notification overrides that conflictwith one another, and to permit the user to resolve the conflict.

In some implementations, the granularity of the geographic locationdisseminated may be controlled with the user interface 500. In suchimplementations, the user interface 500 includes a geographic locationgranularity window 570. Included in the geographic granularity window570 is a series of mutually exclusive options 571-576. Each of theoptions 571-576 corresponds to a certain level of granularity in thegeographic location information that may be transmitted as a result ofthe notification settings in the notification settings list 530. Themost detailed geographic location information is provided when thestreet address option 571 is selected. Selecting the city option 572provides geographic location information to the level of the citycurrently occupied, but the location within the city is not provided.Selecting the metropolitan area option 573 provides geographic locationinformation to the level of the metropolitan area currently occupied,but the location within the metropolitan area is not provided. Selectingthe area of a metropolitan area option 574 provides geographic locationinformation to the level of the area within a metropolitan areacurrently occupied, but the location within the area of the metropolitanarea is not provided. Selecting the region 575 provides geographiclocation information to the level of the region of a country currentlyoccupied (e.g., the state), but the location within the region is notprovided. Selecting the country 575 provides geographic locationinformation to the level of the country currently occupied, but thelocation within the country is not provided.

The user interface 500 enables the easy entry and specification ofnotification settings. A user of the user interface 500 may quicklyselect and specify notification settings to be applied to manycommunications identities. This minimizes the burden of entering andrevising notification settings.

FIG. 6A illustrates a calendar interface 600 that may be used to specifydates and times during which notifications of on-line presence andgeographic location are and are not to be sent. The calendar interface600 displays one week, and a user of the calendar interface 600 maycreate and select time slots 605-625 in which to specify hownotifications are sent. The time slots 605-625 may be created to groupperiods of time during which notification settings are the same, therebyminimizing the amount of configuration performed by the user.

For example, the calendar interface 600 includes a work time slot 605that covers the hours from 7 A.M. to 6 P.M. on Monday through Friday.The calendar interface 600 includes a first personal time slot 610 thatcovers the hours from 7 P.M. to 10 P.M. from Monday through Saturday. Asecond personal time slot 615 covers the time between approximately 2P.M. to 10 P.M. on Sunday. A private time slot 620 covers the timebetween 7 A.M. and approximately 1 P.M. on Sunday. Finally, the calendarinterface 600 includes an open time slot 625 between 7 A.M. and 6 P.M.on Saturday.

In order to specify how notifications are to be sent, participant listsmay be associated with the time slots 605-625. Referring also to FIG.6B, an association 650 relates participant lists to the time slots605-625. The association 650 includes a list 655 of participant listsand a list 660 of time slots. Each of the time slots 605-625 that isincluded in the list 660 corresponds to one of the time slots 605-625 ofFIG. 6A and is associated with a set of notification settings.Notification settings of each of the time slots 605-625 apply to theparticipant lists associated with the time slot. For example, since theparticipant list named “Co-Workers” is associated with the work timeslot 605, the notification settings corresponding to the work time slot605 are applied to the communications identities included in the“Co-workers” participant list. As another example, since the participantlists named “Gaming Friends” and “Card-playing Friends” are associatedwith the first personal time slot 610, the notification settingscorresponding to the first personal time slot 610 are applied to thecommunications identities included in the “Gaming Friends” and“Card-playing Friends” participant lists. In addition to having fullparticipant lists associated with the time slots 605-625, individualcommunications identities may be specified to obey or override thenotification settings corresponding to the time slots 605-625. Forexample, a communications identity named “spouse” has been associatedwith and selected to override the notification settings corresponding tothe work time slot 605.

In another implementation, names of participant lists may be draggedwith a mouse from a list of participant lists that is similar to theparticipant list window 510 from FIG. 5 to one of the time slots 605-625to create an association between the participant lists and the timeslots 605-625. Dragging and dropping the name of a participant list overa time slot may indicate that the people included in the participantlist are (or are not) to be sent notifications of on-line presence orgeographic location during the period of time corresponding to the timeslot. A secondary action, such as pressing and holding a key on akeyboard, may be used in addition to the dragging and dropping ofparticipant list names with the mouse to specify whether the peopleincluded in the participant lists being dragged and dropped are or arenot to be sent notifications. In another implementation, selecting oneof the time slots 605-625 may display a tool for specifying theparticipant lists that are and are not to be sent notifications duringthe selected time slot.

FIG. 7 is a flow chart of a process 700 for indicating how notificationinformation of geographic location and/or on-line presence is to bedisseminated. The process 700, for example, may be executed by a processof a computer displaying the notification settings interface 500 fromFIG. 5 or the calendar interface 600 from FIG. 6 for specifying hownotifications of geographic location or on-line presence are to beshared.

The process 700 begins with the receipt of an indication of aparticipant list (step 705). The participant list includes the names ofpeople with whom instant messages are exchanged. The list may be dividedinto one or more groups, with each group including one or more names.The people included in the participant list are the people to whom thenotification settings created as a result of the execution of theprocess 700 apply.

The processor then receives an indication of a notification setting thatidentifies a type of setting, a start date and time, and an end date andtime (step 710). By way of example, the processor may receive theindication of a notification setting from the user interfaces 500 or600.

The notification setting has one of two types: notify and private. Thenotification setting also specifies a period of time. When thenotification setting type is notify, notification information isprovided during the period of time. When the notification type isprivate, notification is withheld during the period of time. In oneimplementation, the notification setting has a default type of private,so private notification settings do not need to be specified explicitly.In another implementation, the notification setting has a default typeof notify, so notification settings of that type do not need to bespecified explicitly.

An indication that the notification setting is to apply to geographiclocation information and/or on-line presence information is received(step 715). The indication also may be received from the user interface500 or 600.

When delegation information is accessible to the processor, theprocessor makes a determination as to whether a user of the interface500 or 600 is authorized to create or modify a notification setting forthe chosen person based on a delegation model (step 720). For example,the processor may access the delegation information 116 or 147 of FIG. 1to determine whether the user of the interface 500 or 600 is authorizedto create or modify the notification setting. The delegation modelseparates the communications identities included in the participant listinto multiple categories and indicates how the user may create or modifynotification settings for each category. For example, the delegationmodel may create a hierarchy from the people included in the participantlist, and the user may belong to one of the levels of the hierarchy. Theuser may be prevented from modifying the notification settingscorresponding to higher levels in the hierarchy. The user also may beallowed to freely create and modify notification settings correspondingto an equal or lower level of the hierarchy. The user is only allowed tocreate or modify the notification setting as indicated when permitted bythe delegation model (step 725).

If allowed by the delegation model, the notification setting ispersistently stored (step 730). The notification setting also is sent toan appropriate communications system based on the communications systemto which the notification setting is to apply (step 735). For example,if the notification setting is to apply to geographic locationnotifications, then the notification setting is sent to a cellulartelephone system. Similarly, if the notification system is to apply toon-line presence notifications, then the notification is sent to aninstant messaging system.

The process 700 also may be used to specify notification settings thatare to apply to parts of the received participant list. For example,notification settings may be specified for individual communicationsidentities within the participant list or for groups of communicationsidentities within the participant list. In such an implementation, theprocessor receives an indication of the parts of the participant list towhich the notification settings are to apply in addition to theindication of the participant list itself. Furthermore, the process 700also may be used to specify notification settings for communicationsidentities not part of the received participant list. In such animplementation, the processor receives an indication of thecommunications identities instead of an indication of the participantlist.

FIG. 8 is an illustration of a delegation model 800 that aids in thedetermination of how notification setting information corresponding to auser may be specified or modified. The delegation model 800 separatesnotification settings and users into three categories 805-815, andmembers of each category are allowed to modify the notification settinginformation in a particular way. The three categories 805-815 of thedelegation model 800 collectively form a hierarchy. Members of the topcategory 805 of the hierarchy are given the most freedom to modify thenotification setting information, while members of the bottom category815 are given the least freedom to modify the notification settinginformation. More particularly, a member of a given category of thedelegation model 800 is allowed to modify notification settingscorresponding to the categories of the hierarchy equal to or lower thanthe category of the member.

Notification settings corresponding to the top category 805 of thedelegation model are based on government regulations. For example, anotification setting from the top category 805 may enable the full-timedisclosure of geographic location to essential services andapplications, such as emergency services. A typical user is not allowedto create or change a setting that is not in conformance with governmentregulations because the typical user does not correspond to the topcategory 805 of the delegation model 800. In one implementation, thetypical user may be prevented from making changes to the notificationsettings corresponding to the top category 805 by preventing access tothe notification settings from the top category 805. In anotherimplementation, the notification settings from the top category 805 mayoverride any other settings that are created by the user.

Members of the middle category 810 may create notification settings forequipment owners. Equipment owners are people that provide access to amobile communications device or an instant messaging system to users.Examples of equipment owners are employers and parents, and examples ofusers are employees and children. Members of the middle category 810 maymodify any notification settings that do not pertain to governmentregulations. For example, members of the middle category 810 may modifysettings that define the terms of a usage agreement held between theequipment owner and the user.

Members of the bottom category 815 may modify any other notificationsettings that do not fall within the jurisdiction of the other twocategories 805 and 810. The user himself may be a member of the bottomcategory 815 and may modify any notification settings that do notcorrespond to a superordinate category of the delegation model 800.

As an example, the notification settings for a mobile communicationsdevice used by an employee and owned by an employer may include anotification setting corresponding to the middle category 810 thatdictates that the geographic location of the device must be madeavailable during business hours or at any time. The notification settingcorresponds to the middle category 810 because it defines a usageagreement between the employee and the employer. The employee, a memberof the bottom category 805, is not allowed by the delegation model tomodify the notification setting corresponding to the middle level 810.Therefore, the geographic location of the mobile communications deviceis provided as specified by the notification settings corresponding tothe middle category 810. However, the employee may specify othernotification settings that pertain to, for example, whether thegeographic location is provided to the user's family, which correspondto the bottom category 815.

As another example, the notifications for a mobile communications deviceused by a child and owned by a parent may include a notification settingcorresponding to the middle category 810 and specifying that thegeographic location of the device is to be made available at all timesso that the parent may always know the geographic location of the child.The notification setting corresponds to the middle category 810 becauseit defines a usage agreement between the child and parent. The child, amember of the bottom category 805, is not allowed by the delegationmodel to modify the notification setting corresponding to the middlecategory 810. Therefore, the geographic location of the mobilecommunications device is provided as specified by the notificationsettings corresponding to the middle category 810. However, the childmay specify other notification settings that pertain to, for example,the child's friends, which correspond to the bottom category 815.

Alternatively or additionally, a delegation model may separatenotification settings and users into categories based on characteristicsof users. For example, the delegation model may include a category forusers who satisfy a condition and a category for users who do notsatisfy the condition. For example, the condition may differentiatebetween employees of a company and other users. The two categoriesspecified by the condition may be used to specify how notificationsetting information may be changed.

FIG. 9 is a flow chart of a process 900 for modifying notificationsetting information based on a delegation model, such as the delegationmodel 800 of FIG. 8. The delegation model is used to determine if themodifications to the notification settings are permissible. The process900 begins when a delegation model is accessed (step 905) and a new ormodified notification setting is received (step 910).

A level of the delegation model corresponding to the notificationsetting that is being modified is identified (step 915). For example,using the delegation model 800, if the received notification settingcorresponds to a government regulation, then the top level 805 of thedelegation model 800 is identified. A level of the delegation modelcorresponding to the person that created or modified the receivednotification setting is identified (step 920). For example, if thenotification setting is received from an employer of a person to whichthe notification setting is to apply, then the middle level 810 of thedelegation model 800 is identified.

Based on the identified levels of the delegation model for thenotification setting and its creator, the new or modified notificationsetting is permitted or disallowed (step 925). More particularly, if thelevel of the person who created or modified the notification setting ishigher than or equal to the level of the notification setting that isbeing modified, then the notification setting is permitted. However, ifthe level of the person who created or modified the notification settingis lower than the level of the notification setting that is beingmodified, then the notification setting is disallowed.

FIG. 10 is a flow chart of an exemplary process 1000 for providingnotification information corresponding to a communications identity. Thecommunications identity may be an instant messaging identity or a mobiletelephone. The notification information may be on-line presenceinformation for an instant messaging system or geographic location of amobile telephone. The process 1000 includes accessing notificationsetting information corresponding to a communications identity thatincludes at least one temporal condition that specifies a time periodduring which notification information is to be provided or withheld(step 1005). A determination is made as to whether the temporalcondition is satisfied (step 1010). In other words, a determination ismade as to whether the current time and date are within the time periodof the temporal condition.

In response to the determination, the dissemination of notificationinformation relating to the communications identity is controlled (step1015). For example, if the temporal condition is satisfied and thenotification setting information indicates that notification informationis to be provided, then notification information is provided. Likewise,if the temporal condition is satisfied and the notification settinginformation indicates that the notification information is to bewithheld, then the notification information is withheld. On the otherhand, if the temporal condition is not satisfied, then the notificationsetting information is not applied.

Withholding notification information includes not disseminatingnotification as well as preventing other users from obtaining thenotification information. For example, if the notification settinginformation indicates that notification information is to be withheld,then incoming communications associated with the communications identitymay be detected, and the communications identity may be alerted to theincoming communications. The incoming communications may be attempts todetermine the notification information of the communications identity,such as the online presence or the geographical location of thecommunications identity, and such attempts to determine the notificationinformation may be denied.

When notification information is to be withheld, participant lists thatinclude the communications identity are passively configured such thatthe participant lists persistently conceal the status of thecommunications identity. For example, the participant lists may beconfigured to indicate that the communications identity is not availableto communicate. As another example, the participant lists may beconfigured to indicate that availability information for thecommunications identity is unknown. Alternatively or additionally, theparticipant lists may be configured to indicate that the communicationsidentity is not logged onto an instant message system used by thecommunications identity even when the communications identity actuallyis logged onto the instant message system

Sending a message while notification information is withheld reveals theability to communicate. If an attempt is made to send a message from thecommunications identity when the temporal condition is satisfied and thenotification setting information indicates that notification informationis to be withheld, a prompt may be displayed to alert the communicationsidentity that the availability of the communications identity tocommunicate will be revealed when the message is sent.

FIGS. 11A and 11B show a process 1100 for transmitting a notification ofgeographic location of a mobile telephone. Execution of the process 1100also may result in the optional display of the geographic location ofthe mobile telephone on instant messaging participant lists. The process1100 involves a mobile telephone 1105, a base station 1110, a mobileswitching center 1115, and an instant messaging system 1120. The mobileswitching center 1115 combines the functionality of the mobile switchingcenter 230 and the gateway mobile switching center 240 of FIG. 2A inthat the mobile switching center 1115 can both route mobile telephonecalls and access the instant messaging system 1120.

The process 1100 begins when the mobile telephone 1105 performs aregistration process with the base station 1110 (step 1125). After themobile telephone 1105 has registered with the base station 1110, themobile telephone is permitted to place calls through the base station.To do so, the mobile telephone 1105 transmits information to the basestation 1110, which in turn transmits the information to the mobileswitching center 1115 (step 1130). The mobile switching center 1115receives the signal from the base station 1110 regarding the mobiletelephone 1105 (step 1135).

The mobile switching center 1115 uses the information received from thebase station 1110 to determine the geographic location of the mobiletelephone (step 1140). Each mobile switching center 1115 receivessignals from multiple base stations 1110, and each base station 1110covers a particular geographic area. By determining the base station1110 from which the information was received, the mobile switchingcenter 1115 determines the general geographic location of the mobiletelephone 1105. In another implementation, the distance that theinformation traveled from the mobile telephone 1105 to a base station1110 may be determined from the time taken for the information to travelfrom the mobile telephone 1105 to a base station 1110. When the distanceto one base station 1110 is determined, the geographic location of themobile telephone 1105 may be specified to a point on a circle centeredat the base station 1110 with a radius equal to the distance traveled bythe information. When the distance to two base stations 1110 isdetermined, triangulation may be used to identify two possible locationsof the mobile telephone 1105. When the distance to greater than two basestations 1110 is determined, triangulation may be used to identify theexact location of the mobile telephone 1105. In another implementation,the mobile telephone 1105 includes a GPS receiver that may be used todetermine the geographic location of the mobile telephone 1105.

The geographic location of the mobile telephone 1105 is updated by themobile switching center 1115 in a home location register (step 1145).The home location register stores the geographic location of all mobiletelephones 1105 that communicate with the mobile switching center 1115.

The mobile switching center 1115 accesses notification settingsassociated with the mobile telephone 1105 (step 1150). The notificationsettings indicate how the determined geographic location of the mobiletelephone 1105 is to be disseminated. The mobile switching center 1115determines whether the notification settings indicate that thegeographic location of the mobile telephone 1105 should be shared (step1155). To do so, the mobile switching center 1115 determines if thetemporal conditions of the notification settings are satisfied. Themobile switching center 1115 also determines if the notificationsettings indicate that the geographic location is to be shared or keptprivate during the specified time periods.

If the notification settings indicate that the geographic locationshould be disseminated, then the mobile switching center 1115 permitsaccess to or transmission of the geographic location of the mobiletelephone 1105 (step 1160). Otherwise, the mobile switching center 1115does not permit access to or transmission of the geographic location ofthe mobile telephone 1105 (step 1165).

If the notification settings indicate that the geographic locationshould be disseminated, then the mobile switching center 1115 also maysend the geographic location of the mobile telephone 1105 to the instantmessaging system 1120 (step 1170). The instant messaging system 1120receives the geographic location of the mobile telephone 1105 (step1175). The instant messaging system 1120 then determines an instantmessaging identity associated with the mobile telephone 1105 (step1180). In one implementation, the instant messaging system 1120maintains a table of mobile telephone numbers and instant messagingidentities that may be used to determine the instant messaging identityassociated with the mobile telephone 1105. The instant messaging system1120 accesses a participant list and notification settings associatedwith the instant messaging identity (step 1185).

When the notification settings indicate that instant messagingidentities on the participant list are to be notified of the geographiclocation of the mobile telephone 1105, then the granularity of thegeographic location to be provided to the instant messaging identitiesis determined (step 1190). For example, as discussed above, thegranularity of the geographic location may be a street address, a city,a metropolitan area, an area of a metropolitan area, a region of acountry, or a country. The instant messaging system 1120 may permit theinstant messaging identity to which the geographic location applies or arecipient of the geographic location to control the granularity of thegeographic location. In such cases, the instant messaging system 1120determines the appropriate granularity for the geographic location fromthe settings specified by the IM identity or the recipient. The instantmessaging system 1120 also sends the appropriate level of geographiclocation information for the instant messaging identity corresponding tothe mobile telephone 1105 to the instant messaging identities on theparticipant list (step 1195).

FIG. 12 illustrates a process 1200 for transmitting a notification ofon-line presence. The process 1200 involves a client system 1205, a hostsystem 1210, and an instant messaging system 1215. In one example, theclient system 1205 may be an implementation of computer 150 a or 150 bof FIG. 1 that includes software for accessing the host system 1210. Theprocess 1200 begins when a user of the client system 1205 begins asign-on and authentication process with the host system 1210 (step1220). The host system 1210 provides the user of the client system 1205with access to a network on which the instant messaging system 1215 islocated. The user of the client system 1205 may then log into theinstant messaging system 1215. The user is identified on the instantmessaging system by a unique screen name. The instant messaging system1215 determines participant lists associated with the screen name of theuser (step 1225).

The instant messaging system 1215 sends the client system 1205 a list ofcommunications identities on participant lists associated with the userwith indications of whether the communications identities are on-line(step 1230). The client system 1205 receives the participant lists withthe corresponding indications of whether the included communicationsidentities are on-line (step 1235). The client system 1205 sends anacknowledgement of the list of communications identities (step 1240),which is received by the instant messaging system 1215 (step 1245).

The instant messaging system 1215 accesses notification settinginformation associated with a participant list associated with the userof the client system 1205 (step 1250). The notification settinginformation includes at least one temporal condition, and adetermination is made as to whether the temporal condition is satisfied(step 1255). If so, the instant messaging system informs anycommunications identity on the participant list for which thenotification information was accessed that the communications identitycorresponding to the user of the client system 1205 is on-line (step1260).

The instant messaging system 1215 also accesses notification settinginformation associated with the communications identity corresponding tothe user of the client system 1205 (step 1265). A determination is madeas to whether the temporal condition of the notification settinginformation is satisfied (step 1270). If so, the instant messagingsystem informs any communications identity that includes thecommunications identity corresponding to the user of the client system1205 on a participant list that the communications identitycorresponding to the user is on-line (step 1275).

If the temporal conditions associated with the notification settinginformation corresponding to the participant list or to thecommunications identity of the user of the client system 1205 is notsatisfied, then the temporal condition is monitored until satisfied.When the temporal condition becomes satisfied, appropriate action toprovide or withhold notification information is taken (step 1280).

FIG. 13 is a flow chart of a process 1300 for overriding notificationsettings. The process 1300 may be performed by a processor in thecellular system 110 of FIG. 1 in response to the detection of theregistration process of a mobile telephone the cellular system or by aprocessor in the instant messaging system 140 of FIG. 1 in response tothe sign-on of a user to the instant messaging system. The registrationprocess or the sign-on of a user establishes a communications identitythat is used to access the cellular system or the instant messagingsystem. The process 1300 begins when notification settings associatedwith the communications identity are accessed (step 1305). Thenotification settings include a temporal condition for controllingwhether the availability of the communications identity to communicateis disclosed. For example, the temporal condition specifies periods oftime during which the availability of the communications identity tocommunicate with the cellular system or the instant messaging system isdisclosed or withheld.

The processor makes a determination as to whether the temporal conditionis met (step 1310). A result of whether the temporal condition issatisfied is displayed on a user device associated with thecommunications identity (step 1315). For example, if the communicationsidentity is communicating with a mobile telephone, the result of thedetermination may be displayed on a screen included in the mobiletelephone. If the communications identity is communicating with theinstant messaging system, then the result may be displayed on a displayof the computer used to access the instant messaging system. A name forthe period of time specified by the temporal condition may be displayedon the user device associated with the communications identity.

A message asking whether the user would like to override thenotification setting is displayed, and a response to the message isreceived (step 1320). When the response indicates that thecommunications identity would like to override the notification setting,appropriate action is taken (step 1325). For example, the availabilityof the communications identity to communicate may be provided orwithheld regardless of whether the temporal condition is met. Moreparticularly, if the notification setting indicates that theavailability is to be withheld, then overriding the notification settingmay include providing the availability. Similarly, if the notificationsetting indicates that the availability is to be provided, thenoverriding the notification setting may include withholding theavailability. Overriding the notification information may includereplacing or modifying the notification information to reflect how theuser would like the notification information to be disseminated.

In one implementation, a new notification setting that specifies themanner in which the availability of the communications identity isprovided or withheld to override the existing notification setting maybe created, and the new notification setting may permanently replace theexisting notification setting. In one such implementation, the newnotification setting may be applied during the same temporal period ofthe existing notification setting, or the new notification setting maybe applied at all times. In this manner, the notification settinginformation may be easily changed.

Mobile telephones communicating with a cellular system are usedthroughout as examples of mobile communications devices whose geographiclocation may be determined and disseminated. In general, geographiclocations of any mobile communications or computing device, such as alaptop computer, a PDA, or a mobile telephone, may be determined anddisseminated to indicate the locations of the users. The geographiclocation of a mobile communications or computing device may bedetermined from the device itself, from access points (e.g. cellularsystem base stations or wireless access points) used by the device, orfrom explicit user declaration.

Similarly, computers and an instant messaging service are used asexamples of communications devices and communications services that maybe accessed by the communications devices. Use of a communicationsdevice to access the communications service indicates the availabilityof a user of the communications device to communicate, or the presenceof the user. Another example of a communications device and acommunications service are a mobile telephone and a cellular system. Useof the mobile telephone may both indicate the presence of a user of themobile telephone and the geographic location of the user.

Users of the mobile communications devices and the communicationsdevices may be people or machines under the control of people. Forexample, a communications device may be configured to communicate with acommunications service without explicit use by a person, though theperson may control how the communications device communicates with thecommunications service, and presence and geographic location for thecommunications device may be disseminated. For example, a mobiletelephone may communicate with a cellular system without explicit use bya person to ensure that calls are properly routed, and suchcommunication may be used for determining and disseminating the presenceand the geographic location of the person. As another example, presenceinformation and the geographic location of a system for automaticallysending and receiving instant messages, which is known as an instantmessaging robot or a bot, may be controlled and disseminated.

Instant messaging programs typically allow instant message senders tocommunicate in real-time with each other in a variety of ways. Forexample, many instant messaging programs allow instant message sendersto send text as an instant message, to transfer files, and tocommunicate by voice. Examples of instant messaging communicationapplications include AIM (America Online Instant Messenger), AOL(America Online) Buddy List and Instant Messages which is an aspect ofmany client communication applications provided by AOL, Yahoo Messenger,MSN Messenger, and ICQ, among others. Although discussed above primarilywith respect to instant message applications, other implementations arecontemplated for providing similar functionality in platforms andon-line applications. For example, the techniques and concepts may beapplied to an animated avatar that acts as an information assistant toconvey news, weather, and other information to a user of a computersystem or a computing device.

The techniques and concepts generally have been described in the contextof an instant messaging system that uses an instant messaging hostsystem to facilitate the instant messaging communication between instantmessage senders and instant message recipients. Other instant messageimplementations are contemplated, such as an instant message service inwhich instant messages are exchanged directly between an instant messagesender system and an instant message recipient system.

For example, although the examples above are given in an instant messagecontext, other communications systems with similar attributes may beused. For example, multiple personalities may be used in a chat room orin e-mail communications. Also, the user interface may be a viewableinterface, an audible interface, a tactile interface, or a combinationof these.

The user interfaces are described as having windows for which a user maycontrol the display position of each window on a display device. Auser's control over the display position of a window may include, forexample, indirect or direct control of the coordinates of the displaydevice at which the window is positioned, the size of the window, andthe shape of the window. Alternatively, any of the windows describedherein may be implemented as a pane of a graphical user interface inwhich the pane is displayed in a fixed position on a display device.

The described systems, methods, and techniques may be implemented indigital electronic circuitry, computer hardware, firmware, software, orin combinations of these elements. Apparatus embodying these techniquesmay include appropriate input and output devices, a computer processor,and a computer program product tangibly embodied in a machine-readablestorage device for execution by a programmable processor. A processembodying these techniques may be performed by a programmable processorexecuting a program of instructions to perform desired functions byoperating on input data and generating appropriate output. Thetechniques may be implemented in one or more computer programs that areexecutable on a programmable system including at least one programmableprocessor coupled to receive data and instructions from, and to transmitdata and instructions to, a data storage system, at least one inputdevice, and at least one output device. Each computer program may beimplemented in a high-level procedural or object-oriented programminglanguage, or in assembly or machine language if desired; and in anycase, the language may be a compiled or interpreted language. Suitableprocessors include, by way of example, both general and special purposemicroprocessors. Generally, a processor will receive instructions anddata from a read-only memory and/or a random access memory. Storagedevices suitable for tangibly embodying computer program instructionsand data include all forms of non-volatile memory, including by way ofexample semiconductor memory devices, such as Erasable ProgrammableRead-Only Memory (EPROM), Electrically Erasable Programmable Read-OnlyMemory (EEPROM), and flash memory devices; magnetic disks such asinternal hard disks and removable disks; magneto-optical disks; andCompact Disc Read-Only Memory (CD-ROM). Any of the foregoing may besupplemented by, or incorporated in, specially-designed ASICs(application-specific integrated circuits).

It will be understood that various modifications may be made withoutdeparting from spirit and scope of the claims. For example, the steps ofthe disclosed techniques and concepts may be performed in a differentorder and/or the components in the disclosed systems may be combined ina different manner and/or replaced or supplemented by other components.As another example, a screen name is used throughout to represent aunique identifier of an account, but any other unique identifier of anaccount may be used to identify an account. Other implementations arewithin the scope of the following claims.

What is claimed is:
 1. A method comprising: maintaining settings fordisseminating information associated with a user to a plurality of otherusers; receiving, from the user, a first user input defining a subset ofmultiple users from the plurality of other users; receiving, from theuser, a second user input indicating a selection of a setting, from themaintained settings, for disseminating information related to ageographic location of the user; receiving, from the user, a third userinput selecting a time slot to be applied to the selected setting fordisseminating information related to the geographic location of the userduring the selected time slot; displaying the time slot within acalendar interface; receiving, from the user, a fourth user inputcomprising a selection of an icon representing the defined subset ofmultiple users and dragging the icon to the displayed time slot withinthe calendar interface; in response to receiving the fourth user input,associating the defined subset of multiple users with the selectedsetting associated with the time slot; determining, using at least oneprocessor, a geographic location of the user; and disseminatinginformation related to the geographic location of the user to thedefined subset of the multiple users in accordance with the time slot ofthe selected setting.
 2. The method of claim 1, wherein the selectedsetting comprises a selection of a granularity at which to disseminateinformation related to the geographic location of the user to the subsetof the multiple users.
 3. The method of claim 1, wherein the selectionof the setting for disseminating information related to the geographiclocation of the user is determined based on a default user setting. 4.The method of claim 1, wherein the information related to the geographiclocation of the user further includes an indicator of the user'savailability.
 5. A non-transitory computer readable medium storinginstructions thereon that, when executed by at least one processor,cause that at least one processor to perform the steps of: maintainingsettings for disseminating information associated with a user to aplurality of other users; receiving, from the user, a first user inputdefining a subset of multiple users from the plurality of other users;receiving, from the user, a second user input indicating a selection ofa setting, from the maintained settings, for disseminating informationrelated to a geographic location of the user; receiving, from the user,a third user input selecting a time slot to be applied to the selectedsetting for disseminating information related to the geographic locationof the user during the selected time slot; displaying the time slotwithin a calendar interface; receiving, from the user, a fourth userinput comprising a selection of an icon representing the defined subsetof multiple users and dragging the icon to the displayed time slotwithin the calendar interface; in response to receiving the fourth userinput, associating the defined subset of multiple users with theselected setting associated with the time slot; determining a geographiclocation of the user; and disseminating information related to thegeographic location of the user to the subset of multiple users inaccordance with the time slot of the selected setting.
 6. Thenon-transitory computer readable medium of claim 5, wherein the selectedsetting comprises a selection of a granularity at which to disseminateinformation related to the geographic location of the user to the subsetof the multiple users.
 7. The non-transitory computer readable medium ofclaim 5, wherein the information related to the geographic location ofthe user further includes an indicator of the user's availability.
 8. Amobile device comprising: a display; at least one processor; and atleast one non-transitory computer readable medium storing instructionsthereon that, when executed, cause the at least one processor to:maintain settings for providing information associated with a user to aplurality of other users, the maintained settings including one or moresettings that prevents disseminating information related to thegeographic location of the user one or more of the plurality of otherusers; receive, from the user, a first user input defining a subset ofmultiple users from the plurality of other users; receive, from theuser, a second user input indicating a selection of a setting, from themaintained settings, to allow for disseminating information related to ageographic location of the user; receive, from the user, a third userinput selecting a time slot to be applied to the selected setting toallow for disseminating information related to the geographic locationof the user during the selected time slot; display the time slot withina calendar interface; receive, from the user, a fourth user inputcomprising a selection of an icon representing the defined subset ofmultiple users and dragging the icon to the displayed time slot withinthe calendar interface; in response to receiving the fourth user input,overriding at least one setting of the maintained settings fordisseminating information that prevents disseminating informationrelated to the geographic location of the user to one or more users ofthe defined subset of multiple users; determine a geographic location ofthe user; and in accordance with the override of at least one setting ofthe maintained settings that prevents disseminating information relatedto the geographic location of the user to one or more users of thedefined subset of users, disseminate information related to thegeographic location of the user to the defined subset of multiple usersin accordance with the time slot of the selected setting.
 9. The mobiledevice of claim 8, wherein the selection of the setting fordisseminating information related to the geographic location of the useris determined based on a default user settings.
 10. The mobile device ofclaim 8, wherein the information related to the geographic location ofthe user further includes an indicator of the user's availability. 11.The method of claim 1, further comprising: identifying a time associatedwith disseminating the information related to the geographic location ofthe user; determining that the time falls within the selected time slot;and disseminating the information related to the geographic location ofthe user to the defined subset of multiple users in accordance with thetime slot of the selected setting and overriding at least one of themaintained settings associated with the one or more users of the definedsubset of users that conflict with the selected setting.
 12. The methodof claim 1, further comprising identifying a time associated withdisseminating the information related to the geographic location of theuser; determining that the time falls outside the selected time slot;and disseminating the information related to the geographic location ofthe user to the defined subset of multiple users in accordance with oneor more of the maintained settings.
 13. The method of claim 1, whereinthe selected setting comprises instructions to enable the defined subsetof multiple users associated with the selected time slot to receiveinformation related to the geographic location of the user.
 14. Themethod of claim 1, wherein the selected setting comprises instructionsto prevent the defined subset of multiple users associated with theselected setting from receiving information related to the geographiclocation of the user for one or more geographic locations of the userdetermined within the selected time slot.
 15. The method of claim 1,wherein receiving the fourth user input comprises receiving theselection of the icon from a listing of icons associated with aplurality of defined subsets of multiple users from the plurality ofother users.
 16. The method of claim 1, wherein the time slot comprisesa periodic time slot.
 17. The method of claim 16, wherein the display ofthe time slot within the graphical user interface comprises a display ofthe periodic time slot within a weekly calendar of the calendarinterface.
 18. The method of claim 15, further comprising: receiving aselection of another icon from the listing of icons representing anotherdefined subset of multiple users and dragging the another icon to thedisplayed time slot within the calendar interface; and in response toreceiving the selection of the another icon and dragging the anothericon to the displayed time slot, associating the another defined subsetof multiple users with the selected setting associated with the timeslot.